#pragma once
class Canvas;
class ControlTree;
class XmlTree;
class AttrTree;
class MainForm : public ui::WindowImplBase
{
public:
	MainForm();
	~MainForm();

	virtual std::wstring GetSkinFolder() override;
	virtual std::wstring GetSkinFile() override;
	virtual std::wstring GetWindowClassName() const override;
	virtual ui::Control* CreateControl(const std::wstring& pstrClass) override;

	virtual void InitWindow() override;

	virtual LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);

	bool OnBtnFileClicked(ui::EventArgs* args);

	bool OnMenuFileSaveAs(ui::EventArgs* args);

	void FileDlgCallback(bool ret, std::vector<std::wstring> vecFilePath);

public:
	static const std::wstring kClassName;
private:
	Canvas *m_pCanvas;
	ControlTree * m_pTreeControl;
	XmlTree * m_pTreeXml;
	AttrTree *m_pTreeAttr;

	ui::MenuWnd* m_pSubMenu = nullptr;
};

